import VueRouter from 'vue-router'
import Vue from 'vue'
Vue.use(VueRouter)

import login from '@/views/login/login.vue'
import layout from '@/views/layout/layout.vue'
import chart from '@/views/layout/chart/chart.vue'
import user from '@/views/layout/user/user.vue'
import question from '@/views/layout/question/question.vue'
import business from '@/views/layout/business/business.vue'
import subject from '@/views/layout/subject/subject.vue'
const router = new VueRouter({
  routes: [
    {
      path: '/',
      redirect: '/login'
    },
    {
      path: '/login',
      component: login,
      meta: {
        title: '登录',
        roles: ['超级管理员', '管理员', '老师', '学生']
      }
    },
    {
      path: '/layout',
      component: layout,
      redirect: '/layout/subject',
      children: [
        {
          path: '/layout/chart',
          component: chart,
          // meta:路由元
          meta: {
            title: '数据概览',
            icon: 'el-icon-pie-chart',
            roles: ['超级管理员', '管理员', '老师']
          }
        },
        {
          path: '/layout/user',
          component: user,
          meta: {
            title: '用户列表',
            icon: 'el-icon-user',
            roles: ['超级管理员', '管理员']
          }
        },
        {
          path: '/layout/question',
          component: question,
          meta: {
            title: '题库列表',
            icon: 'el-icon-edit-outline',
            roles: ['超级管理员', '管理员', '老师']
          }
        },
        {
          path: '/layout/business',
          component: business,
          meta: {
            title: '企业列表',
            icon: 'el-icon-office-building',
            roles: ['超级管理员', '管理员', '老师']
          }
        },
        {
          path: '/layout/subject',
          component: subject,
          meta: {
            title: '学科列表',
            icon: 'el-icon-notebook-2',
            roles: ['超级管理员', '管理员', '老师', '学生']
          }
        }
      ]
    }
  ]
})
/*Nprogress
1:装 包
2:导入  
   import Nprogress from 'nprogress'
   导入相应css  import "nprogress/nprogress.css"
3:使用
   开始  Nprogress.start()
   结束  Nprogress.done() 

*/
import Nprogress from 'nprogress'
import 'nprogress/nprogress.css'
// 离开时拦截   路由前置守卫
// 导入vuex实例对象
import store from '@/store/index.js' // store===this.$store
import { Message } from 'element-ui'
// 导入删除token方法
import { removeLocal } from '@/utils/local.js'
router.beforeEach((to, from, next) => {
  // to:去哪里  要去的路由的信息  要去的路由的 $route
  // from:从哪来 从哪个路由过来的路由信息  $route
  // next是否通过  正常通过  next()  不允许 next(path)
  Nprogress.start()
  // 当前要to的路由的路由元中是否包含当前登陆人角色  如果包含  next()  不包含  提示  清除token  next('/login')
  if (to.meta.roles.includes(store.state.role)) {
    next()
  } else {
    // 提示一下
    Message.error('您无权访问该页面')
    // 删除token
    removeLocal('token')
    // 跳转到登陆页
    next('/login')
  }
})

// 进入后拦截   路由后置守卫
router.afterEach(to => {
  Nprogress.done()
  // to:去哪里  要去的路由的信息  要去的路由的 $route
  // from:从哪来 从哪个路由过来的路由信息  $route
  // window.console.log('to:', to)
  // window.console.log('from:', from)
  // 在跳转到数据概览后修改title
  // document.getElementById('title').innerText = to.meta.title
  document.title = to.meta.title
  // if (to.path == '/layout/chart') {
  //   document.getElementById('title').innerText = '数据概览'
  // } else if (to.path == '/layout/subject') {
  //   document.getElementById('title').innerText = '学科列表'
  // }
})

// 动作快 git pull   接取服务器代码到当前 分支   立马修改,动作 快一点  修改完立马提交
// 输出 router
export default router
